// 权限拦截 导航守卫 路由守卫  router
import router from '@/router' // 引入路由实例
import store from '@/store' // 引入vuex store实例
import { Toast } from 'vant'
// import vue from 'vue'
// import { againUser } from '@/api/user.js'
// import service from './utils/request'
// service.interceptors.request.use(
//   (config) => {
//     // 在这个位置需要统一的去注入token
//     if (store.getters.token) {
//       // 如果token存在 注入token
//       config.headers.Authorization = `Bearer ${store.getters.token}`
//     }
//     return config // 必须返回配置
//   },
//   (error) => {
//     return Promise.reject(error)
//   }
// )

// 路由的前置守卫
router.beforeEach(async function (to, from, next) {
  if (to.meta.needLogin) {
    // 有token代表登录了，没token代表没登录
    // console.dir(this.$route)
    if (store.getters.token) {
      // 没有用户信息就重新申请
      if (store.getters.userInfo) {
        store.dispatch('login/getUse')
        // next()
      }
      next()
    } else {
      // 弹出消息：请先登录
      Toast.fail('请先登录')
      // 没登录打回登录页，并且记录登录成功后该回的页面
      next({
        name: 'login',
        query: {
          // to.path就是我本来想去的页面，但是没去成，打回登录页了
          back: to.path
        }
      })
    }
  } else {
    // 不需要登录的页面直接放行

    next()
  }
})
// 后置守卫
router.afterEach(function () {})
